package cn.edu.zafu.bigdata.yuyini;

// 尝试创建一个final类
final class Final {
    public void method() {
        System.out.println("Method in FinalClass");
    }
}

// 尝试创建一个final方法
class Parent {
    public final void finalMethod() {
        System.out.println("Final method in ParentClass");
    }
}

class Child extends Parent {
    // 尝试重写final方法将导致编译错误
    // public void finalMethod() {
    //     System.out.println("Final method in ChildClass");
    // }
}

// 使用final关键字修饰一个变量
class Variable_Test {
    public final int value = 10;

    public void test() {
        // value = 20; // 尝试修改final变量的值将导致编译错误
    }
}

public class Final_Test {
    public static void main(String[] args) {
        // 尝试实例化FinalClass的子类将导致编译错误
        // FinalClass child = new FinalClass();

        // 创建ParentClass和ChildClass的实例
        Parent parent = new Parent();
        // ChildClass child = new ChildClass(); // 尝试创建ChildClass的实例将导致编译错误

        // 调用final方法
        parent.finalMethod();
        // child.finalMethod(); // 尝试调用ChildClass中的final方法将导致编译错误

        // 创建VariableTest的实例并测试final变量
        Variable_Test variableTest = new Variable_Test();
        variableTest.test();
    }
}